/**
 * @author wn
 * @date 2022/10/18 09:26:49
 * @description: 拦截 axios 请求  采用自己模拟的接口
 * 除非  main.js 中全部注释  或者本 js 中局部注释
 *
 * 'qs'   node 自带 无需安装
 * 将字符串' name='ww',age=18 ' parse 为对象
 *
 * npm i mockjs
 *
 */
import Mock from 'mockjs'
import qs from 'qs'

// mock的配置
Mock.setup({
	// 随机延时500-1000毫秒 模拟网络延迟
	timeout: '500-1000',
})

/**
 * 第一个参数：url，使用正则去匹配(前面有baseURL)   正则// 转译\-->/\/my\/test/
 * 第二个参数：请求方式    注意  必须是  小写 get   大写无法拦截
 * 第三个参数：return 生成数据的函数   config 为 请求参数
 */

Mock.mock(/\/home\/tableData/, 'get', config => {
	const queryStr = config.url.substring(config.url.lastIndexOf('?') + 1)
	const { collectType, page, pageSize } = qs.parse(queryStr)
	const items = []
	for (let index = 0; index < pageSize; index++) {
		const item = Mock.mock({
			id: '@id', // 随机 id  @guid',
			name: '@ctitle(10,20)', // 随机中文 10-20
			desc: '@ctitle(4,10)', // 随机中文 4-10
			price: '@float(100,200,2,2)', // 数字100-200的随机数，小数点的位数最小值与最大值都为2
			// http://zhoushugang.gitee.io/erabbit-client-pc-static/uploads/clothes_goods_7.jpg
			picture: `http://zhoushugang.gitee.io/erabbit-client-pc-static/uploads/clothes_goods_${Mock.mock(
				'@integer(1,8)'
			)}.jpg`,
		})
		items.push(item)
	}
	return {
		msg: '请求测试接口成功',
		result: {
			items,
			collectType: +collectType,
			page: +page,
			pageSize: +pageSize,
		},
	}
})

// 以后 使用  fast mock 在线 定义接口 更方便  main.js无需导入

// 参考文档吧
// 'discount|1-100': 100,        'orderNum|1-100': 100,
// 属性名 |生成规则 : 属性值

/*
  const obj = {
	message: '请求测试接口成功',
	code: 200,
	result: {
		'data|200': [
			{
				id: '@guid',
				name: '@cname',
				addr: '@county(true)',
				age: '@integer(18,60)',
				birth: '@date()',
				sex: '@integer(0,1)',
			},
		],
	},
}

*/
